package jp.ddo.trismegistos.action.impl.regist;

import jp.ddo.trismegistos.action.impl.AbstractAction;
import jp.ddo.trismegistos.bean.User;
import jp.ddo.trismegistos.exception.RsException;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;

/**
 * 新規登録確認用画面に遷移するActionクラス。
 * 
 * @author y_sugasawa
 * @since 2011/06/05
 * 
 */
public class ConfirmAction extends AbstractAction {

	/** ログ */
	private static final Logger log = Logger.getLogger(ConfirmAction.class
			.getName());

	/**
	 * 入力チェック済のユーザ情報をsessionに移す。
	 */
	@Override
	public String execute() throws RsException {
		// リクエスト情報に格納されているユーザ情報をセッションに移す。
		setSession("user", getRequest("user"));
		return "regist/confirm.jsp";
	}

	/**
	 * {@inheritDoc}
	 */
	public void validate() {
		final String userId = getParameter("userId");
		final String password = getParameter("password");
		final String rePassword = getParameter("rePassword");

		setRequest("userId", userId);
		setRequest("password", password);
		setRequest("rePassword", rePassword);

		final User user = new User();
		setRequest("user", user);

		if (StringUtils.isEmpty(userId)) {
			addErrors("ユーザIDが未入力です。");
		}
		user.setUserId(userId);

		if (StringUtils.isEmpty(password)) {
			addErrors("パスワードが未入力です。");
			return;
		}

		if (StringUtils.isEmpty(rePassword)) {
			addErrors("確認用のパスワードが未入力です。");
			return;
		}

		if (password.equals(rePassword) == false) {
			addErrors("パスワードが一致しません。");
		}

		user.setPassword(password);
	}
}
